var express = require('express');
var router = express.Router();
const {User} = require('../models')
const {success,failure} = require('../util/requestResult')
const {NotFoundError,BadRequestError,UnauthorizedError} = require('../util/errors')
// 处理文件上传的中间件，会在req中添加file属性以供使用
const multer = require('multer')

const fs = require('fs')

const fileup = multer({
    dest:'uploadFile',
}).single('file')

const filesup = multer({
    // 指定存放路径
    dest:'uploadFile',
    // 第一个参数为发送请求的参数名，第二个为文件个数，可少不可多
}).array('file',10)


router.post('/',fileup,(req,res)=>{
    console.log(req.file);
    // 防止文件名为中文出现乱码，处理一下
    let originalname = Buffer.from(req.file.originalname, "latin1").toString("utf8");
    // 使用multer中间件处理的文件上传完成后文件名会被更改且文件的mime丢失
    // 所以使用fs模块将文件的命名修改回上传之前的命名
    fs.renameSync(req.file.path,`uploadFile/${originalname}`)
    res.send(req.file)
})

router.post('/files',filesup,(req,res)=>{
    console.log(req.files);
    
    res.send(req.files)
})

router.get('/',(req,res)=>{
    res.json({message:'hello'})
})

// 此下载接口返回的是一个文件流
router.get('/download',(req,res) => {
    const url = req.query.url
    res.download(`uploadFile/${url}`)
})


module.exports = router